package com.kzj.service;

import com.kzj.domain.CourseSelectionInformation;
import com.kzj.domain.Student;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kzj.domain.dto.ChangePasswordDTO;
import com.kzj.domain.dto.UserLoginDTO;
import com.kzj.domain.vo.StudentVO;
import com.kzj.global.re.Result;
import org.springframework.transaction.annotation.Transactional;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author kzj
 * @since 2023-12-01
 */
@Transactional
public interface StudentService extends IService<Student> {
    StudentVO getStudentVO(Student student);
    Result login(UserLoginDTO userLoginDTO);
    Result update(Student student);
    Result addStudent(Student student);
    Result changePassword(ChangePasswordDTO changePasswordDTO);
    Result getStudentById(String id);
    Result getStudentByStudentClassId(String studentClassId);
    Result getStudentByMajorId(String majorId);
    Result getStudentByAcademyId(String academyId);
    Result robClasses(String courseId);

    void handlerCourseSelectionInformation(CourseSelectionInformation courseSelectionInformation);

    Result getOptionalCourseList();

    Result updateStudent(Student student);

    Result cancelCourse(String courseId);

    Result getCancelCourseList();

    Result getCurrTermExamination(String studentId);

    Result getScoreList(Integer term);
}
